﻿using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SQLite;
using System.Linq;
using System.Text;

namespace jlynet.core.notebook.util
{
    public static class SQLiteUtil
    {
        /// <summary>
        /// 把GB转换成uft8-8
        /// 蒽，还有个情况是，关于sqlite管理器的字符编码问题，在sqlite管理器中一般都以UFT-8编码显示，
        /// 但是在C#中，所有字符窜的编码都是unicode，写入的时候应该注意编码转换问题，
        /// 我这边是出现了字符编码的问题，后面写了个函数来转换。
        /// 在连接sqlite的时候可以写明需要操作的是什么编码，
        /// 编译环境会自动根据设定的字符编码来get、set，显示也就正常了，
        /// 如果，在sqlite管理工具上查看的是uft-8编码的话，那取出的数据也应该是显示正常的，
        /// 但是在有的PC上显示的是乱码，这个时候就应该去转换一下，读取的数据了。
        /// </summary>
        /// <param name="strEnCode"></param>
        public static string EnCodeing(string strEnCode)
        {
            UTF8Encoding uft8 = new UTF8Encoding();
            string unicodeString = strEnCode;
            Byte[] encodeBytes = uft8.GetBytes(unicodeString);
            String decodeString = uft8.GetString(encodeBytes);
            return decodeString;
        }

        /**//// <summary>
            /// 放回一个SQLiteParameter
            /// </summary>
            /// <param name="name">参数名字</param>
            /// <param name="type">参数类型</param>
            /// <param name="size">参数大小</param>
            /// <param name="value">参数值</param>
            /// <returns>SQLiteParameter的值</returns>
        public static SQLiteParameter CreateSqliteParameter(string name, DbType type, int size, object value)
        {
            SQLiteParameter parm = new SQLiteParameter(name, type, size);
            parm.Value = value;
            return parm;
        }

        /// <summary>
        /// 
        /// </summary>
        /// <returns></returns>
        public static Dictionary<string, object> getFileParameter(string str)
        {
            Dictionary<string, object> parm = new Dictionary<string, object>();
            //string str = " F:\\test\\Default.aspx";
            string filename = System.IO.Path.GetFileName(str);//文件名 “Default.aspx”
            parm.Add("filename", filename);

            string extension = System.IO.Path.GetExtension(str);//扩展名 “.aspx”
            parm.Add("extension", extension);

            string fileNameWithoutExtension = System.IO.Path.GetFileNameWithoutExtension(str);// 没有扩展名的文件名 “Default”
            parm.Add("filenameNoExtension", fileNameWithoutExtension);

            string directory = System.IO.Path.GetDirectoryName(str);
            parm.Add("directory", directory);

            //string str = " F:\\test\\Default.aspx";
            //char[] delimiterChars = { '.', '\\' };
            //string[] Mystr = str.Split(delimiterChars);
            //string sheetName = Mystr[Mystr.Length - 2];// 没有扩展名的文件名 “Default”

            return parm;
        }


    }
}
